分类
联系方式
  1. 新浪微博
  2. E-mail

Vue 的组合式 API 和选项式 API

在入门 Vue 时,我发现组件有两种写法:组件式 API 和选项式 API。两者有什么区别?改用哪一种?本文是我的一些直观的理解。

选项式 API(Options API)是 Vue2 中提供的。组合式 API(Composition API)是 Vue3 中提供的。

选项式 API

选项式 API 是在 <script> 部分,直接 export 一个 Object,包括数据、方法等都在这个 object 中,通过方法或者属性来实现。示例:

<script>
export default {
    name: 'App',
    data() {
        return {
            name: 'mae'
        }
    },
    methods: {
        changeName() {
            this.name = 'maeiee'
        }
    }
}
</script>

组合式 API

组合式方案在 <script> 部分里包含一个 setup 方法,然后在 setup 方法内部,像写代码一样,写命令式代码:

<script>
import { ref } from 'vue';
export default {
    name: 'App',
    setup() {
        const name = ref('mae');
        
        function changeName() {
            name.value = 'maeiee';
        }
        return {
            name, changeName
        }
    }
}
</script>

对于复杂的逻辑,组合式 API 能够更加方便地进行拆分,我想这就是“组合式”的含义把。具体拆分用法参见《组合式API和选项式API - 掘金 (juejin.cn)

网络资源

组合式API和选项式API - 掘金 (juejin.cn)

vue3学习(2)选项式API和组合式API的区别 - 掘金 (juejin.cn)